1. Field of the Invention
The invention relates generally to the field of digital data processing systems and more specifically to networks for use in connection with distributed systems.
2. Description of the Prior Art
A digital data processing system, or computer, typically includes a processor, associated memory and input/output units enabling a user to load programs and data into the computer and obtain processed data therefrom. In the past, computers were expensive, and so to be cost effective had to support a number of users. More recently, however, the cost of computers, particularly the processors and memories, has decreased substantially, and so it is relatively cost effective to provide a computer to one or at most only a few users.
A benefit of providing only a single computer for a large number of users was that the users could easily share information. Thus, for example, if all persons working in a bookkeeping or accounting department use a single common computer, they may maintain common accounting and bookkeeping databases up to date, and when necessary accounting reports may be generated from those databases. However, if they use separate computers, the data is stored in separate databases, on each computer, and so generating accounting reports would be more difficult.
As a result, networks were developed to provide a distributed computer system, that is, a system which permits diverse computers to communicate and transfer data among them. In addition, the networks allow the sharing of expensive input/output devices, such as printers and mass storage devices, and input/output devices which may be rarely used, such as links to the public telecommunications network. In a network, each computer is a node which communicates with other nodes over one or several wires. In addition, nodes may be provided which store and manage databases or other data files on mass storage devices, or which manage printers or links to the public telecommunications network.
A problem arises with networks, however, since resources used in the network, such as programs and data files, the input/output devices and so forth, are typically stored in, or connected to, only some of the nodes. If clients on other nodes need to use such resources, they must be able to find them. In the past, each client node had to maintain a file identifying the location, within the network, of all resources which were available to the client. With a large network with many resources, this arrangement required substantial amounts of memory at each client node devoted only to the storage of such location information. In addition, maintaining location information in the diverse client nodes in an updated and current condition was difficult and required processing by the client node and transfers over the network which could otherwise be used for more useful information processing purposes.
More recently, naming services have been developed which maintained the identification of the locations of the resources available in a network. Naming services maintain the location information in only a few locations in the network, and provide the information to a client node on request. In addition, the naming services update the location information over the network without client node processing.